package chapter02.part04;

import chapter02.FileUtil;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.UserPrincipal;

/**
 * 获取文件信息
 * 要注意的是 文件信息不具备可移植性
 * 
 * @author insight
 * @since 2021/8/21
 */
public class GetFileInfo {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get(FileUtil.TEST_FILE_PATH);
        
        // 使用静态方法 检查文件属性
        Files.exists(path);
        Files.isHidden(path);
        
        Files.isReadable(path);
        Files.isWritable(path);
        Files.isExecutable(path);

        Files.isRegularFile(path);
        Files.isDirectory(path);
        Files.isSymbolicLink(path);

        Files.size(path);

        // 将文件的拥有者作为 UserPrincipal 返回
        UserPrincipal owner = Files.getOwner(path);
        System.out.println(owner);
        
        // 获取基本属性集合
        BasicFileAttributes attr = Files.readAttributes(path,
                BasicFileAttributes.class);
        // 可以获取各类时间 FileTime
        attr.creationTime();
        attr.lastAccessTime();
        attr.lastModifiedTime();
    }
}